package com.tfjybj.itoo.exam.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.persistence.Column;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * ExamRoomModel
 * 考场表
 *
 * @author 任晓帅
 * @version 2.0.0
 * @since 2.0.0 2018-11-15 19:40:28
 */
@ApiModel(value = "ExamRoomModel:考场表")
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
public class ExamRoomModel extends ExaminationModel implements Serializable {

    //region 模板逆向生产来自ExamRoomEntity的属性
    /**
     * id
     */
    @ApiModelProperty(value = "examRoom主键")
    @Column(name = "id")
    private String id;
    /**
     * 考场名称
     */
    @ApiModelProperty(value = "考场名称")
    private String name;

    /**
     * 教室id
     */
    @ApiModelProperty(value = "教室id")
    @Column(name = "roomId")
    private String roomId;

    /**
     * 考试id
     */
    @ApiModelProperty(value = "考试id", required = true)
    private String examId;

    /**
     * 主监考老师id
     */
    @ApiModelProperty(value = "主监考老师id")
    private String invigilatorMainId;

    /**
     * 副监考老师id
     */
    @ApiModelProperty(value = "副监考老师id")
    private String invigilatorSubId;

    /**
     * 教室容量
     */
    @ApiModelProperty(value = "教室容量", required = true, example = "0")
    private Integer roomCapacity;

    /**
     * 已占用容量
     */
    @ApiModelProperty(value = "已占用容量", example = "0")
    private Integer employCapacity;

    /**
     * 开始时间
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "开始时间")
    private Date loginTime;

    /**
     * 理论结束时间
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "理论结束时间")
    private Date shouldSubmitTime;

    /**
     * 使用状态
     */
    @ApiModelProperty(value = "考场是否选择过", example = "0")
    private Integer usageState;
    //endregion

    /* *****************************以下是非模板生成的内容************************************ */
    // 查询监考老师--马莹
    /**
     * 监考老师姓名
     */
    @ApiModelProperty(value = "监考老师姓名")
    private String invigilatorName;

    /**
     * 监考老师职工号
     */
    @ApiModelProperty(value = "主监考老师id")
    private String teacherCode;

    /**
     * 考试名称
     */
    @ApiModelProperty(value = "考试名称")
    private String examName;

    // 考试情况报表-王雪芬-2018年11月16日
    @ApiModelProperty(value = "教师名称")
    private String teacherName;
    @ApiModelProperty(value = "违纪人数")
    private int noLoginNum;
    @ApiModelProperty(value = "违纪人数")
    private int disciplineNum;
    @ApiModelProperty(value = "缺考明细")
    private List<ExamineeModel> noLoginExamineeList;//缺考明细
    @ApiModelProperty(value = "缺考学生明细")
    private List<ExamineeReachClassModel> noLoginStudentList;//缺考学生明细  --表格展示
    @ApiModelProperty(value = "违纪学生明细")
    private List<DisciplineInfoModel> disciplineInfoList;//违纪学生明细  --表格展示
    @ApiModelProperty(value = "学生明细")
    private List<ExamineeReachClassModel> studentInfoList;//学生明细  --表格展示


    /**
     * 考场人数
     */
    @ApiModelProperty(value = "考场人数")
    private int examRoomStudentCount;

    /**
     * 缺考人数
     */
    @ApiModelProperty(value = "缺考人数")
    private int noLoginExamineeCount;
}
